// 转换聚合数据为MQTT发布格式
function transformForMqtt(msg) {
    try {
        // 获取聚合后的数据
        const aggregatedData = msg.payload;
        if (!aggregatedData) {
            node.error("No aggregated data found in msg.payload");
            return msg;
        }

        // 创建新的扁平化数据结构
        const mqttData = {};

        // 遍历每个测点
        Object.keys(aggregatedData).forEach(pointId => {
            const dimensionValues = aggregatedData[pointId];
            
            // 直接将维度ID和值添加到顶层对象
            Object.keys(dimensionValues).forEach(dimensionId => {
                mqttData[dimensionId] = dimensionValues[dimensionId];
            });
        });

        // 更新消息负载
        msg.payload = mqttData;
        
        // 添加调试日志
        node.debug("Transformed data for MQTT: " + JSON.stringify(mqttData, null, 2));
        
        return msg;
    } catch (error) {
        node.error("Error transforming data for MQTT: " + error.message);
        return msg;
    }
}

// 设置为 Node-RED 函数节点的内容
return transformForMqtt(msg); 